package com.gcxy.dto.user;

import com.gcxy.constant.StringConst;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AccessLevel;
import lombok.Data;
import lombok.Getter;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.util.Date;
import java.util.List;

/**
 * 用户个人信息更新对象
 *
 * @author pep7chiao
 * @date 2024/7/16
 */
@Data
@Accessors(chain = true)
@ApiModel(value = "UserInfoDTO", description = "用户个人信息更新对象")
public class UserInfoDTO {

    @ApiModelProperty("用户ID")
    private Integer id;
    /**
     * 用户名
     */
    @NotBlank(message = "用户账号不能为空")
    @ApiModelProperty("用户账号")
    @Length(max = StringConst.STUDENT_ACCOUNT_LENGTH, message = "用户账号最多15个字")
    @Pattern(regexp = "^[A-Za-z0-9]+$", message = "用户账号只能输入英文或者数字")
    private String username;

    /**
     * 用户姓名
     */
    @NotBlank(message = "用户姓名不能为空")
    @ApiModelProperty("用户姓名")
    @Length(max = StringConst.USER_NAME_LENGTH, message = "用户姓名最多10个字")
    @Pattern(regexp = "^[\\u4e00-\\u9fa50-9]+$", message = "用户姓名只能输入中文或者数字")
    private String fullName;

    /**
     * 岗位编号
     */
    @ApiModelProperty("岗位编号")
    private Integer positionId;

    /**
     * 班级编号
     */
    @ApiModelProperty("班级编号")
    private Integer classId;

    /**
     * 组织机构编号
     */
//    @NotNull(message = "组织机构编号不能为空")
    @ApiModelProperty("组织机构编号")
    private Integer agencyId;

    /**
     * 用户签名
     */
    @ApiModelProperty("用户签名")
    private String signature;

    @ApiModelProperty("用户备注")
    private String remarks;

    /**
     * 用户具有的角色
     */
    @ApiModelProperty(value = "角色列表")
//    @NotNull(message = "角色列表不能为空")
    private List<Integer> roles;
}
